This invention relates to a computer database and particularly to a virtual database space system employing a nonvolatile virtual database space.
Computer system technology using virtual memory mechanisms has been in practical use in mainframes since the early 1970s and in personal computers since the early 1990s, about twenty years later, and since then has been accepted and developed as a core computer technology in the marketplace. Initially valued for its effect of enlarging small real memories, as real memory capacities have become larger it has since become historically valued as an effective technology for achieving maximum throughput of mixed transactions in various fields of application where this was not previously possible.
However, in databases, our historical experience with this valuable computer technology has not necessarily been used to the full.
Conventionally, processing carried out in databases such as relational databases has centered on searches. Since main memories of computers have generally been small in capacity, data of a database has been stored in a secondary storage device. Because the access speed of a secondary storage device is slower than that of a main storage device, a buffer area has been provided in the main storage device and reading and writing of data has been carried out by way of the buffer area by demand paging being conducted when necessary. When free space in the buffer area runs out, according to a method such as the LRU method the least recently used data in the buffer area is written to the secondary storage device and deleted from the buffer area.
The buffer area of a conventional database has at the most been in the range of capacity of a virtual memory device, and because virtual memory devices are volatile it has been considered completely impossible for databases to be held in them directly. Accordingly, the ultimate aim of conventional database manipulation and recovery has always been the manipulation and recovery of data in a secondary storage device such as a hard disc.
However, because it has been the manipulation of data in a secondary storage device that has been the ultimate aim, there has been a limit to increases in processing efficiency and naturally there has been a limit to the range of practical uses of the database processing of relational databases and the like. That is, although numerous trials and experiments have been conducted with the aim of using relational databases, which until recently were used mainly for searches, also as operational systems databases, in which the overwhelming majority of transactions are update transactions, there have been very few reports of satisfactory throughputs being obtained with conventional systems as they are when different transactions like these are mixed.
Also, when a failure such as a system stoppage occurs a buffer in a main storage device is lost and consequently it is necessary to carry out a recovery, and conventionally this has almost always been carried out by data in a target secondary storage device being recovered using a log constituting a history of updates. To carry out a recovery it has been necessary to separately execute a recovery program, and furthermore failures occurring during a recovery have almost always resulted in the system being down for a long time.
Also, to enable the database to be recovered when a failure occurs in the secondary storage device it has been usual for a backup copy of all the data of the database in a secondary storage device to be held in another storage device, but because when the database in the secondary storage device is updated during this backup operation the backup copy of the database may not match the database it has been necessary for updating of the database to be stopped for the duration of the backup operation.